문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 고차 함수 (문단 편집) ==== 일반적인 구현 ==== 아래에서는 자연수열을 정적으로 입력하였다. 필요하다면 다른 컨테이너를 사용해 동적으로 임의의 수열을 생성할 수 있다. 메르센 수를 구하는 함수와 소수 판별 함수는 재귀 호출 최적화 및 상황에 따라 컴파일 타임에 값을 연역할 수 있도록 상수 표현식으로 작성되었다. [* C++의 상수 표현식은 인라이닝을 암시하여 인자가 적당히 작을 경우 별도의 함수 구문과 호출 구문을 생성하지 않는다.] {{{#!syntax cpp #include #include #include using namespace std; constexpr size_t mersenne(const size_t &); constexpr bool is_prime(const size_t &, const size_t & = 3); int main(const int argc, const char **argv) { const array natural_sequence = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; vector mersenne_sequence; vector prime_sequence; for (const auto &i : natural_sequence) { mersenne_sequence.push_back(mersenne(i)); } for (const auto &i : mersenne_sequence) { if (is_prime(i)) { prime_sequence.push_back(i); } } for (const auto &i : prime_sequence) { cout << i << endl; // 3, 7, 31, 127 } return 0; } constexpr size_t mersenne(const size_t &n) { return n > 0 ? 2 * mersenne(n - 1) + 1 : 0; } constexpr bool is_prime(const size_t &n, const size_t &i) { return n > 1 ? n & 1 ? n % i || i * i > n ? i * i > n ? true : is_prime(n, i + 2) : false : n == 2 : false; } }}}저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기